import 'package:enjoy_plus/utils/http.dart';
import 'package:flutter/material.dart';
import 'package:flutter_html/flutter_html.dart';

import '../../utils/ToastUtil.dart';

class NoticeDetail extends StatefulWidget {
  NoticeDetail({super.key, required this.id});

  String id;

  @override
  State<NoticeDetail> createState() => _NoticeDetailState();
}

class _NoticeDetailState extends State<NoticeDetail> {
  // Map<String, dynamic> params = {};
  Map notifyDetail = {};

  @override
  void didChangeDependencies() {
    // TODO: implement didChangeDependencies
    super.didChangeDependencies();
    // final data = ModalRoute.of(context)?.settings.arguments;
    // if (data != null) {
    //   params = data as Map<String, dynamic>;
    // }
    getNotifyDetail();
  }

  void getNotifyDetail() async {
    try {
      // 请求数据
      var res = await Http.getInstance().get('/announcement/${widget.id}');
      if (res['code'] != 10000) return ToastUtil.showError('获取数据失败');
      // ToastUtil.showSuccess('获取数据成功');
      setState(() {
        notifyDetail = res['data'];
      });
    } catch (e) {
      ToastUtil.showError('请求失败：$e');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text('公告详情'),
        ),
        body: ListView(
          children: [
            Container(
              padding: EdgeInsets.all(16),
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.start,
                children: [
                  // 标题
                  Text(notifyDetail['title'] ?? '',
                      style: const TextStyle(
                        fontSize: 18,
                        fontWeight: FontWeight.bold,
                      )),
                  const SizedBox(height: 10),
                  Row(
                      mainAxisAlignment: MainAxisAlignment.spaceBetween,
                      children: [
                        Text(notifyDetail['creatorName'] ?? '',
                            style: const TextStyle(color: Colors.grey)),
                        Text(notifyDetail['createdAt'] ?? '',
                            style: const TextStyle(color: Colors.grey))
                      ]),
                  const SizedBox(height: 10),
                  // 内容
                  Html(
                    data: notifyDetail['content'] ?? '',
                  )
                ],
              ),
            ),
          ],
        ));
  }
}
